// Loesung_von_Aufgabe_5.6_4_Lissajous_Figur

float A = 100; // Amplitude der Schwingungen
float w; // Winkel in Grad
float z; // Kleinwinkeländerung in Grad

void setup() 
{
  size(400, 400);
}

void draw() 
{
  background(0);

  // Raster wird gezeichnet
  stroke(0, 100, 0);
  strokeWeight(1);
  for (int x = 0; x < width; x += 30) 
  {
    line(x, 0, x, height);
  } 
  for (int y = 0; y < height; y += 30) 
  {
    line(0, y, width, y);
  }

  // Die Lissajous-Figur wird gezeichnet
  for (float i = 0; i < 1000; i++) // 1000 Kreise werden pro Durchlauf gezeichnet
  {
    fill(155, 255, 0);
    noStroke();
    ellipse((width/2 + A*sin(radians(2*w+z))), (height/2 + A*sin(radians(3*w+180))), 5, 5);
    w++; // Hier wird festgelegt, wie schnell sich die einzelnen Kreise im Fenster bewegen
  }
  z = z + 0.3; // Hier wird die Geschwindigkeit der Drehung der Figur bestimmt
}